home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_xemacs.idb / usr / freeware / lib / xemacs-20.4 / lisp / games / mpuz.elc.z / mpuz.elc
Emacs Compiled Lisp  |  1998-05-21  |  9.7 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text


This file was processed as: Emacs Compiled Lisp (other/emacsCompiledLisp).
This format is not currently supported by dexvert.

ConfidenceProgramDetectionMatch TypeSupport
1% dexvert Emacs Compiled Lisp (other/emacsCompiledLisp) magic Unsupported
100% file Emacs/XEmacs v20 byte-compiled Lisp data default
99% file data default
55% TrID Emacs/XEmacs byte-compiled Lisp (generic) default
44% TrID Summation Document Image Information Load File default (weak)



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 3b 45 4c 43 14 00 00 00 | 0a 3b 3b 3b 20 63 6f 6d |;ELC....|.;;; com|
|00000010| 70 69 6c 65 64 20 62 79 | 20 6a 75 73 74 69 6e 62 |piled by| justinb|
|00000020| 40 65 62 6f 6e 79 2e 63 | 72 61 79 2e 63 6f 6d 20 |@ebony.c|ray.com |
|00000030| 6f 6e 20 4d 6f 6e 20 4d | 61 72 20 20 39 20 31 32 |on Mon M|ar 9 12|
|00000040| 3a 34 39 3a 33 34 20 31 | 39 39 38 0a 3b 3b 3b 20 |:49:34 1|998.;;; |
|00000050| 66 72 6f 6d 20 66 69 6c | 65 20 2f 68 6f 6d 65 2f |from fil|e /home/|
|00000060| 61 73 70 65 6e 30 37 2f | 6a 75 73 74 69 6e 62 2f |aspen07/|justinb/|
|00000070| 72 6f 6f 74 73 2f 66 72 | 65 65 77 61 72 65 2f 78 |roots/fr|eeware/x|
|00000080| 65 6d 61 63 73 2f 32 30 | 2e 33 2f 78 65 6d 61 63 |emacs/20|.3/xemac|
|00000090| 73 2d 32 30 2e 33 2f 6c | 69 73 70 2f 67 61 6d 65 |s-20.3/l|isp/game|
|000000a0| 73 2f 6d 70 75 7a 2e 65 | 6c 0a 3b 3b 3b 20 65 6d |s/mpuz.e|l.;;; em|
|000000b0| 61 63 73 20 76 65 72 73 | 69 6f 6e 20 32 30 2e 34 |acs vers|ion 20.4|
|000000c0| 20 22 45 6d 65 72 61 6c | 64 22 20 58 45 6d 61 63 | "Emeral|d" XEmac|
|000000d0| 73 20 20 4c 75 63 69 64 | 2e 0a 3b 3b 3b 20 62 79 |s Lucid|..;;; by|
|000000e0| 74 65 63 6f 6d 70 20 76 | 65 72 73 69 6f 6e 20 32 |tecomp v|ersion 2|
|000000f0| 2e 32 35 20 58 45 6d 61 | 63 73 3b 20 32 32 2d 4d |.25 XEma|cs; 22-M|
|00000100| 61 72 2d 39 36 2e 0a 3b | 3b 3b 20 6f 70 74 69 6d |ar-96..;|;; optim|
|00000110| 69 7a 61 74 69 6f 6e 20 | 69 73 20 6f 6e 2e 0a 3b |ization |is on..;|
|00000120| 3b 3b 20 74 68 69 73 20 | 66 69 6c 65 20 75 73 65 |;; this |file use|
|00000130| 73 20 6f 70 63 6f 64 65 | 73 20 77 68 69 63 68 20 |s opcode|s which |
|00000140| 64 6f 20 6e 6f 74 20 65 | 78 69 73 74 20 69 6e 20 |do not e|xist in |
|00000150| 45 6d 61 63 73 20 31 39 | 2e 0a 0a 28 69 66 20 28 |Emacs 19|...(if (|
|00000160| 61 6e 64 20 28 62 6f 75 | 6e 64 70 20 27 65 6d 61 |and (bou|ndp 'ema|
|00000170| 63 73 2d 76 65 72 73 69 | 6f 6e 29 0a 09 20 28 6f |cs-versi|on).. (o|
|00000180| 72 20 28 61 6e 64 20 28 | 62 6f 75 6e 64 70 20 27 |r (and (|boundp '|
|00000190| 65 70 6f 63 68 3a 3a 76 | 65 72 73 69 6f 6e 29 20 |epoch::v|ersion) |
|000001a0| 65 70 6f 63 68 3a 3a 76 | 65 72 73 69 6f 6e 29 0a |epoch::v|ersion).|
|000001b0| 09 20 20 20 20 20 28 73 | 74 72 69 6e 67 2d 6c 65 |. (s|tring-le|
|000001c0| 73 73 70 20 65 6d 61 63 | 73 2d 76 65 72 73 69 6f |ssp emac|s-versio|
|000001d0| 6e 20 22 32 30 22 29 29 | 29 0a 20 20 20 20 28 65 |n "20"))|). (e|
|000001e0| 72 72 6f 72 20 22 60 6d | 70 75 7a 2e 65 6c 27 20 |rror "`m|puz.el' |
|000001f0| 77 61 73 20 63 6f 6d 70 | 69 6c 65 64 20 66 6f 72 |was comp|iled for|
|00000200| 20 45 6d 61 63 73 20 32 | 30 22 29 29 0a 0a 28 6f | Emacs 2|0"))..(o|
|00000210| 72 20 28 62 6f 75 6e 64 | 70 20 27 63 75 72 72 65 |r (bound|p 'curre|
|00000220| 6e 74 2d 6c 6f 61 64 2d | 6c 69 73 74 29 20 28 73 |nt-load-|list) (s|
|00000230| 65 74 71 20 63 75 72 72 | 65 6e 74 2d 6c 6f 61 64 |etq curr|ent-load|
|00000240| 2d 6c 69 73 74 20 6e 69 | 6c 29 29 0a 0a 0a 28 72 |-list ni|l))...(r|
|00000250| 61 6e 64 6f 6d 20 74 29 | 0a 23 40 35 31 20 2a 53 |andom t)|.#@51 *S|
|00000260| 65 74 20 74 68 69 73 20 | 74 6f 20 54 20 69 66 20 |et this |to T if |
|00000270| 79 6f 75 20 64 6f 6e 27 | 74 20 77 61 6e 74 20 64 |you don'|t want d|
|00000280| 69 6e 67 73 20 6f 6e 20 | 69 6e 70 75 74 73 2e 1f |ings on |inputs..|
|00000290| 0a 28 64 65 66 76 61 72 | 20 6d 70 75 7a 2d 73 69 |.(defvar| mpuz-si|
|000002a0| 6c 65 6e 74 20 6e 69 6c | 20 28 23 24 20 2e 20 2d |lent nil| (#$ . -|
|000002b0| 36 30 36 29 29 0a 23 40 | 35 37 20 44 69 6e 67 73 |606)).#@|57 Dings|
|000002c0| 2c 20 75 6e 6c 65 73 73 | 20 67 6c 6f 62 61 6c 20 |, unless| global |
|000002d0| 76 61 72 69 61 62 6c 65 | 20 60 6d 70 75 7a 2d 73 |variable| `mpuz-s|
|000002e0| 69 6c 65 6e 74 27 20 66 | 6f 72 62 69 64 73 20 69 |ilent' f|orbids i|
|000002f0| 74 2e 1f 0a 28 64 65 66 | 61 6c 69 61 73 20 27 6d |t...(def|alias 'm|
|00000300| 70 75 7a 2d 64 69 6e 67 | 20 23 5b 6e 69 6c 20 22 |puz-ding| #[nil "|
|00000310| 08 ae 83 c1 c2 21 87 22 | 20 5b 6d 70 75 7a 2d 73 |.....!."| [mpuz-s|
|00000320| 69 6c 65 6e 74 20 64 69 | 6e 67 20 74 5d 20 32 20 |ilent di|ng t] 2 |
|00000330| 28 23 24 20 2e 20 36 39 | 39 29 5d 29 0a 28 62 79 |(#$ . 69|9)]).(by|
|00000340| 74 65 2d 63 6f 64 65 20 | 22 c0 c1 21 ac 82 c2 11 |te-code |"..!....|
|00000350| c1 0b 42 13 c2 87 22 20 | 5b 62 6f 75 6e 64 70 20 |..B..." |[boundp |
|00000360| 6d 70 75 7a 2d 6d 6f 64 | 65 2d 68 6f 6f 6b 20 6e |mpuz-mod|e-hook n|
|00000370| 69 6c 20 63 75 72 72 65 | 6e 74 2d 6c 6f 61 64 2d |il curre|nt-load-|
|00000380| 6c 69 73 74 5d 20 32 29 | 0a 23 40 33 37 20 4c 6f |list] 2)|.#@37 Lo|
|00000390| 63 61 6c 20 6b 65 79 6d | 61 70 20 74 6f 20 75 73 |cal keym|ap to us|
|000003a0| 65 20 69 6e 20 4d 75 6c | 74 20 50 75 7a 7a 6c 65 |e in Mul|t Puzzle|
|000003b0| 2e 1f 0a 28 64 65 66 76 | 61 72 20 6d 70 75 7a 2d |...(defv|ar mpuz-|
|000003c0| 6d 6f 64 65 2d 6d 61 70 | 20 6e 69 6c 20 28 23 24 |mode-map| nil (#$|
|000003d0| 20 2e 20 39 31 30 29 29 | 0a 28 62 79 74 65 2d 63 | . 910))|.(byte-c|
|000003e0| 6f 64 65 20 22 08 84 8b | 00 c1 20 10 c2 08 c3 c4 |ode "...|.. .....|
|000003f0| 23 88 c2 08 c5 c4 23 88 | c2 08 c6 c4 23 88 c2 08 |#.....#.|....#...|
|00000400| c7 c4 23 88 c2 08 c8 c4 | 23 88 c2 08 c9 c4 23 88 |..#.....|#.....#.|
|00000410| c2 08 ca c4 23 88 c2 08 | cb c4 23 88 c2 08 cc c4 |....#...|..#.....|
|00000420| 23 88 c2 08 cd c4 23 88 | c2 08 ce c4 23 88 c2 08 |#.....#.|....#...|
|00000430| cf c4 23 88 c2 08 d0 c4 | 23 88 c2 08 d1 c4 23 88 |..#.....|#.....#.|
|00000440| c2 08 d2 c4 23 88 c2 08 | d3 c4 23 88 c2 08 d4 c4 |....#...|..#.....|
|00000450| 23 88 c2 08 d5 c4 23 88 | c2 08 d6 c4 23 88 c2 08 |#.....#.|....#...|
|00000460| d7 c4 23 88 c2 08 d8 d9 | 23 88 c2 08 da db 23 88 |..#.....|#.....#.|
|00000470| c1 87 22 20 5b 6d 70 75 | 7a 2d 6d 6f 64 65 2d 6d |.." [mpu|z-mode-m|
|00000480| 61 70 20 6d 61 6b 65 2d | 73 70 61 72 73 65 2d 6b |ap make-|sparse-k|
|00000490| 65 79 6d 61 70 20 64 65 | 66 69 6e 65 2d 6b 65 79 |eymap de|fine-key|
|000004a0| 20 22 61 22 20 6d 70 75 | 7a 2d 74 72 79 2d 6c 65 | "a" mpu|z-try-le|
|000004b0| 74 74 65 72 20 22 62 22 | 20 22 63 22 20 22 64 22 |tter "b"| "c" "d"|
|000004c0| 20 22 65 22 20 22 66 22 | 20 22 67 22 20 22 68 22 | "e" "f"| "g" "h"|
|000004d0| 20 22 69 22 20 22 6a 22 | 20 22 41 22 20 22 42 22 | "i" "j"| "A" "B"|
|000004e0| 20 22 43 22 20 22 44 22 | 20 22 45 22 20 22 46 22 | "C" "D"| "E" "F"|
|000004f0| 20 22 47 22 20 22 48 22 | 20 22 49 22 20 22 4a 22 | "G" "H"| "I" "J"|
|00000500| 20 22 07 22 20 6d 70 75 | 7a 2d 6f 66 66 65 72 2d | "." mpu|z-offer-|
|00000510| 61 62 6f 72 74 20 22 3f | 22 20 64 65 73 63 72 69 |abort "?|" descri|
|00000520| 62 65 2d 6d 6f 64 65 5d | 20 34 29 0a 23 40 34 35 |be-mode]| 4).#@45|
|00000530| 34 20 4d 75 6c 74 69 70 | 6c 69 63 61 74 69 6f 6e |4 Multip|lication|
|00000540| 20 70 75 7a 7a 6c 65 20 | 6d 6f 64 65 2e 0a 0a 59 | puzzle |mode...Y|
|00000550| 6f 75 20 68 61 76 65 20 | 74 6f 20 67 75 65 73 73 |ou have |to guess|
|00000560| 20 77 68 69 63 68 20 6c | 65 74 74 65 72 73 20 73 | which l|etters s|
|00000570| 74 61 6e 64 20 66 6f 72 | 20 77 68 69 63 68 20 64 |tand for| which d|
|00000580| 69 67 69 74 73 20 69 6e | 20 74 68 65 0a 6d 75 6c |igits in| the.mul|
|00000590| 74 69 70 6c 69 63 61 74 | 69 6f 6e 20 64 69 73 70 |tiplicat|ion disp|
|000005a0| 6c 61 79 65 64 20 69 6e | 73 69 64 65 20 74 68 65 |layed in|side the|
|000005b0| 20 60 2a 4d 75 6c 74 20 | 50 75 7a 7a 6c 65 2a 27 | `*Mult |Puzzle*'|
|000005c0| 20 62 75 66 66 65 72 2e | 0a 0a 59 6f 75 20 6d 61 | buffer.|..You ma|
|000005d0| 79 20 65 6e 74 65 72 20 | 61 20 67 75 65 73 73 20 |y enter |a guess |
|000005e0| 66 6f 72 20 61 20 6c 65 | 74 74 65 72 27 73 20 76 |for a le|tter's v|
|000005f0| 61 6c 75 65 20 62 79 20 | 74 79 70 69 6e 67 20 66 |alue by |typing f|
|00000600| 69 72 73 74 20 74 68 65 | 20 6c 65 74 74 65 72 2c |irst the| letter,|
|00000610| 0a 74 68 65 6e 20 74 68 | 65 20 64 69 67 69 74 2e |.then th|e digit.|
|00000620| 20 20 54 68 75 73 2c 20 | 74 6f 20 67 75 65 73 73 | Thus, |to guess|
|00000630| 20 74 68 61 74 20 41 3d | 33 2c 20 74 79 70 65 20 | that A=|3, type |
|00000640| 41 20 33 2e 0a 0a 54 6f | 20 6c 65 61 76 65 20 74 |A 3...To| leave t|
|00000650| 68 65 20 67 61 6d 65 20 | 74 6f 20 64 6f 20 6f 74 |he game |to do ot|
|00000660| 68 65 72 20 65 64 69 74 | 69 6e 67 20 77 6f 72 6b |her edit|ing work|
|00000670| 2c 20 6a 75 73 74 20 73 | 77 69 74 63 68 20 62 75 |, just s|witch bu|
|00000680| 66 66 65 72 73 2e 0a 54 | 68 65 6e 20 79 6f 75 20 |ffers..T|hen you |
|00000690| 6d 61 79 20 72 65 73 75 | 6d 65 20 74 68 65 20 67 |may resu|me the g|
|000006a0| 61 6d 65 20 77 69 74 68 | 20 4d 2d 78 20 6d 70 75 |ame with| M-x mpu|
|000006b0| 7a 2e 0a 59 6f 75 20 6d | 61 79 20 61 62 6f 72 74 |z..You m|ay abort|
|000006c0| 20 61 20 67 61 6d 65 20 | 62 79 20 74 79 70 69 6e | a game |by typin|
|000006d0| 67 20 5c 3c 6d 70 75 7a | 2d 6d 6f 64 65 2d 6d 61 |g \<mpuz|-mode-ma|
|000006e0| 70 3e 5c 5b 6d 70 75 7a | 2d 6f 66 66 65 72 2d 61 |p>\[mpuz|-offer-a|
|000006f0| 62 6f 72 74 5d 2e 1f 0a | 28 64 65 66 61 6c 69 61 |bort]...|(defalia|
|00000700| 73 20 27 6d 70 75 7a 2d | 6d 6f 64 65 20 23 5b 6e |s 'mpuz-|mode #[n|
|00000710| 69 6c 20 22 c0 11 c2 13 | c4 0d 21 88 c6 c7 21 87 |il "....|..!...!.|
|00000720| 22 20 5b 6d 70 75 7a 2d | 6d 6f 64 65 20 6d 61 6a |" [mpuz-|mode maj|
|00000730| 6f 72 2d 6d 6f 64 65 20 | 22 4d 75 6c 74 20 50 75 |or-mode |"Mult Pu|
|00000740| 7a 7a 6c 65 22 20 6d 6f | 64 65 2d 6e 61 6d 65 20 |zzle" mo|de-name |
|00000750| 75 73 65 2d 6c 6f 63 61 | 6c 2d 6d 61 70 20 6d 70 |use-loca|l-map mp|
|00000760| 75 7a 2d 6d 6f 64 65 2d | 6d 61 70 20 72 75 6e 2d |uz-mode-|map run-|
|00000770| 68 6f 6f 6b 73 20 6d 70 | 75 7a 2d 6d 6f 64 65 2d |hooks mp|uz-mode-|
|00000780| 68 6f 6f 6b 5d 20 32 20 | 28 23 24 20 2e 20 31 33 |hook] 2 |(#$ . 13|
|00000790| 33 30 29 20 6e 69 6c 5d | 29 0a 23 40 34 30 20 4e |30) nil]|).#@40 N|
|000007a0| 75 6d 62 65 72 20 6f 66 | 20 65 72 72 6f 72 73 20 |umber of| errors |
|000007b0| 6d 61 64 65 20 69 6e 20 | 63 75 72 72 65 6e 74 20 |made in |current |
|000007c0| 67 61 6d 65 2e 1f 0a 28 | 64 65 66 76 61 72 20 6d |game...(|defvar m|
|000007d0| 70 75 7a 2d 6e 62 2d 65 | 72 72 6f 72 73 20 30 20 |puz-nb-e|rrors 0 |
|000007e0| 28 23 24 20 2e 20 31 39 | 35 31 29 29 0a 23 40 32 |(#$ . 19|51)).#@2|
|000007f0| 38 20 4e 75 6d 62 65 72 | 20 6f 66 20 67 61 6d 65 |8 Number| of game|
|00000800| 73 20 63 6f 6d 70 6c 65 | 74 65 64 2e 1f 0a 28 64 |s comple|ted...(d|
|00000810| 65 66 76 61 72 20 6d 70 | 75 7a 2d 6e 62 2d 63 6f |efvar mp|uz-nb-co|
|00000820| 6d 70 6c 65 74 65 64 2d | 67 61 6d 65 73 20 30 20 |mpleted-|games 0 |
|00000830| 28 23 24 20 2e 20 32 30 | 33 34 29 29 0a 23 40 34 |(#$ . 20|34)).#@4|
|00000840| 32 20 4e 75 6d 62 65 72 | 20 6f 66 20 65 72 72 6f |2 Number| of erro|
|00000850| 72 73 20 6d 61 64 65 20 | 69 6e 20 70 72 65 76 69 |rs made |in previ|
|00000860| 6f 75 73 20 67 61 6d 65 | 73 2e 1f 0a 28 64 65 66 |ous game|s...(def|
|00000870| 76 61 72 20 6d 70 75 7a | 2d 6e 62 2d 63 75 6d 75 |var mpuz|-nb-cumu|
|00000880| 6c 61 74 65 64 2d 65 72 | 72 6f 72 73 20 30 20 28 |lated-er|rors 0 (|
|00000890| 23 24 20 2e 20 32 31 31 | 34 29 29 0a 23 40 34 32 |#$ . 211|4)).#@42|
|000008a0| 20 54 72 75 65 20 69 66 | 20 61 20 67 61 6d 65 20 | True if| a game |
|000008b0| 69 73 20 63 75 72 72 65 | 6e 74 6c 79 20 69 6e 20 |is curre|ntly in |
|000008c0| 70 72 6f 67 72 65 73 73 | 2e 1f 0a 28 64 65 66 76 |progress|...(defv|
|000008d0| 61 72 20 6d 70 75 7a 2d | 69 6e 2d 70 72 6f 67 72 |ar mpuz-|in-progr|
|000008e0| 65 73 73 20 6e 69 6c 20 | 28 23 24 20 2e 20 32 32 |ess nil |(#$ . 22|
|000008f0| 30 39 29 29 0a 23 40 35 | 34 20 41 20 76 65 63 74 |09)).#@5|4 A vect|
|00000900| 6f 72 20 72 65 63 6f 72 | 64 69 6e 67 20 77 68 69 |or recor|ding whi|
|00000910| 63 68 20 64 69 67 69 74 | 73 20 68 61 76 65 20 62 |ch digit|s have b|
|00000920| 65 65 6e 20 64 65 63 72 | 79 70 74 65 64 2e 1f 0a |een decr|ypted...|
|00000930| 28 64 65 66 76 61 72 20 | 6d 70 75 7a 2d 66 6f 75 |(defvar |mpuz-fou|
|00000940| 6e 64 2d 64 69 67 69 74 | 73 20 28 6d 61 6b 65 2d |nd-digit|s (make-|
|00000950| 76 65 63 74 6f 72 20 31 | 30 20 6e 69 6c 29 20 28 |vector 1|0 nil) (|
|00000960| 23 24 20 2e 20 32 32 39 | 38 29 29 0a 28 64 65 66 |#$ . 229|8)).(def|
|00000970| 61 6c 69 61 73 20 27 6d | 70 75 7a 2d 64 69 67 69 |alias 'm|puz-digi|
|00000980| 74 2d 73 6f 6c 76 65 64 | 2d 70 20 27 28 6d 61 63 |t-solved|-p '(mac|
|00000990| 72 6f 20 2e 20 23 5b 28 | 64 69 67 69 74 29 20 22 |ro . #[(|digit) "|
|000009a0| c0 c1 5c 6e 45 87 22 20 | 5b 61 72 65 66 20 6d 70 |..\nE." |[aref mp|
|000009b0| 75 7a 2d 66 6f 75 6e 64 | 2d 64 69 67 69 74 73 20 |uz-found|-digits |
|000009c0| 64 69 67 69 74 5d 20 33 | 5d 29 29 0a 23 40 33 38 |digit] 3|])).#@38|
|000009d0| 20 41 20 70 65 72 6d 75 | 74 61 74 69 6f 6e 20 66 | A permu|tation f|
|000009e0| 72 6f 6d 20 5b 30 2e 2e | 39 5d 20 74 6f 20 5b 30 |rom [0..|9] to [0|
|000009f0| 2e 2e 39 5d 2e 1f 0a 28 | 64 65 66 76 61 72 20 6d |..9]...(|defvar m|
|00000a00| 70 75 7a 2d 64 69 67 69 | 74 2d 74 6f 2d 6c 65 74 |puz-digi|t-to-let|
|00000a10| 74 65 72 20 28 6d 61 6b | 65 2d 76 65 63 74 6f 72 |ter (mak|e-vector|
|00000a20| 20 31 30 20 30 29 20 28 | 23 24 20 2e 20 32 35 31 | 10 0) (|#$ . 251|
|00000a30| 33 29 29 0a 23 40 33 38 | 20 54 68 65 20 69 6e 76 |3)).#@38| The inv|
|00000a40| 65 72 73 65 20 6f 66 20 | 6d 70 75 7a 2d 64 69 67 |erse of |mpuz-dig|
|00000a50| 69 74 2d 74 6f 2d 6c 65 | 74 74 65 72 2e 1f 0a 28 |it-to-le|tter...(|
|00000a60| 64 65 66 76 61 72 20 6d | 70 75 7a 2d 6c 65 74 74 |defvar m|puz-lett|
|00000a70| 65 72 2d 74 6f 2d 64 69 | 67 69 74 20 28 6d 61 6b |er-to-di|git (mak|
|00000a80| 65 2d 76 65 63 74 6f 72 | 20 31 30 20 30 29 20 28 |e-vector| 10 0) (|
|00000a90| 23 24 20 2e 20 32 36 31 | 37 29 29 0a 28 64 65 66 |#$ . 261|7)).(def|
|00000aa0| 61 6c 69 61 73 20 27 6d | 70 75 7a 2d 74 6f 2d 64 |alias 'm|puz-to-d|
|00000ab0| 69 67 69 74 20 27 28 6d | 61 63 72 6f 20 2e 20 23 |igit '(m|acro . #|
|00000ac0| 5b 28 6c 65 74 74 65 72 | 29 20 22 c0 c1 5c 6e 45 |[(letter|) "..\nE|
|00000ad0| 87 22 20 5b 61 72 65 66 | 20 6d 70 75 7a 2d 6c 65 |." [aref| mpuz-le|
|00000ae0| 74 74 65 72 2d 74 6f 2d | 64 69 67 69 74 20 6c 65 |tter-to-|digit le|
|00000af0| 74 74 65 72 5d 20 33 5d | 29 29 0a 28 64 65 66 61 |tter] 3]|)).(defa|
|00000b00| 6c 69 61 73 20 27 6d 70 | 75 7a 2d 74 6f 2d 6c 65 |lias 'mp|uz-to-le|
|00000b10| 74 74 65 72 20 27 28 6d | 61 63 72 6f 20 2e 20 23 |tter '(m|acro . #|
|00000b20| 5b 28 64 69 67 69 74 29 | 20 22 c0 c1 5c 6e 45 87 |[(digit)| "..\nE.|
|00000b30| 22 20 5b 61 72 65 66 20 | 6d 70 75 7a 2d 64 69 67 |" [aref |mpuz-dig|
|00000b40| 69 74 2d 74 6f 2d 6c 65 | 74 74 65 72 20 64 69 67 |it-to-le|tter dig|
|00000b50| 69 74 5d 20 33 5d 29 29 | 0a 23 40 35 33 20 49 6e |it] 3]))|.#@53 In|
|00000b60| 69 74 69 61 6c 69 7a 65 | 20 70 75 7a 7a 6c 65 20 |itialize| puzzle |
|00000b70| 63 6f 64 69 6e 67 20 77 | 69 74 68 20 61 20 72 61 |coding w|ith a ra|
|00000b80| 6e 64 6f 6d 20 70 65 72 | 6d 75 74 61 74 69 6f 6e |ndom per|mutation|
|00000b90| 2e 1f 0a 28 64 65 66 61 | 6c 69 61 73 20 27 6d 70 |...(defa|lias 'mp|
|00000ba0| 75 7a 2d 62 75 69 6c 64 | 2d 72 61 6e 64 6f 6d 2d |uz-build|-random-|
|00000bb0| 70 65 72 6d 20 23 5b 6e | 69 6c 20 22 c0 c1 c2 c3 |perm #[n|il "....|
|00000bc0| c4 c5 c6 c7 c8 c9 af 5c | 6e ca cb 1e 0c 1e 0d 1e |.......\|n.......|
|00000bd0| 0e 0e 0e ad a8 cf 0e 0d | 21 0e 0e 38 16 0c d0 0e |........|!..8....|
|00000be0| 0c 0e 0e 5c 22 16 0e 0e | 0d 53 16 0d 0e 11 0e 0d |...\"...|.S......|
|00000bf0| 0e 0c 49 88 0e 12 0e 0c | 0e 0d 49 88 aa 54 2b 87 |..I.....|..I..T+.|
|00000c00| 22 20 5b 30 20 31 20 32 | 20 33 20 34 20 35 20 36 |" [0 1 2| 3 4 5 6|
|00000c10| 20 37 20 38 20 39 20 31 | 30 20 6e 69 6c 20 65 6c | 7 8 9 1|0 nil el|
|00000c20| 65 6d 20 69 6e 64 65 78 | 20 6c 65 74 74 65 72 73 |em index| letters|
|00000c30| 20 72 61 6e 64 6f 6d 20 | 64 65 6c 71 20 6d 70 75 | random |delq mpu|
|00000c40| 7a 2d 64 69 67 69 74 2d | 74 6f 2d 6c 65 74 74 65 |z-digit-|to-lette|
|00000c50| 72 20 6d 70 75 7a 2d 6c | 65 74 74 65 72 2d 74 6f |r mpuz-l|etter-to|
|00000c60| 2d 64 69 67 69 74 5d 20 | 31 30 20 28 23 24 20 2e |-digit] |10 (#$ .|
|00000c70| 20 32 39 31 30 29 5d 29 | 0a 23 40 37 33 20 54 68 | 2910)])|.#@73 Th|
|00000c80| 65 20 62 6f 61 72 64 20 | 61 73 73 6f 63 69 61 74 |e board |associat|
|00000c90| 65 73 20 74 6f 20 61 6e | 79 20 64 69 67 69 74 20 |es to an|y digit |
|00000ca0| 74 68 65 20 6c 69 73 74 | 20 6f 66 20 73 71 75 61 |the list| of squa|
|00000cb0| 72 65 73 20 77 68 65 72 | 65 20 69 74 20 61 70 70 |res wher|e it app|
|00000cc0| 65 61 72 73 2e 1f 0a 28 | 64 65 66 76 61 72 20 6d |ears...(|defvar m|
|00000cd0| 70 75 7a 2d 62 6f 61 72 | 64 20 28 6d 61 6b 65 2d |puz-boar|d (make-|
|00000ce0| 76 65 63 74 6f 72 20 31 | 30 20 6e 69 6c 29 20 28 |vector 1|0 nil) (|
|00000cf0| 23 24 20 2e 20 33 31 39 | 38 29 29 0a 23 40 35 39 |#$ . 319|8)).#@59|
|00000d00| 20 50 75 74 20 28 6c 61 | 73 74 20 64 69 67 69 74 | Put (la|st digit|
|00000d10| 20 6f 66 29 20 4e 55 4d | 42 45 52 20 6f 6e 20 53 | of) NUM|BER on S|
|00000d20| 51 55 41 52 45 20 6f 66 | 20 74 68 65 20 70 75 7a |QUARE of| the puz|
|00000d30| 7a 6c 65 20 62 6f 61 72 | 64 2e 1f 0a 28 64 65 66 |zle boar|d...(def|
|00000d40| 61 6c 69 61 73 20 27 6d | 70 75 7a 2d 70 75 74 2d |alias 'm|puz-put-|
|00000d50| 64 69 67 69 74 2d 6f 6e | 2d 62 6f 61 72 64 20 23 |digit-on|-board #|
|00000d60| 5b 28 6e 75 6d 62 65 72 | 20 73 71 75 61 72 65 29 |[(number| square)|
|00000d70| 20 22 08 c1 a6 10 5c 6e | 08 0b 5c 6e 08 48 42 49 | "....\n|..\n.HBI|
|00000d80| 87 22 20 5b 6e 75 6d 62 | 65 72 20 31 30 20 6d 70 |." [numb|er 10 mp|
|00000d90| 75 7a 2d 62 6f 61 72 64 | 20 73 71 75 61 72 65 5d |uz-board| square]|
|00000da0| 20 35 20 28 23 24 20 2e | 20 33 33 32 39 29 5d 29 | 5 (#$ .| 3329)])|
|00000db0| 0a 23 40 36 31 20 43 68 | 65 63 6b 20 77 68 65 74 |.#@61 Ch|eck whet|
|00000dc0| 68 65 72 20 61 6c 6c 20 | 64 69 67 69 74 73 20 68 |her all |digits h|
|00000dd0| 61 76 65 20 62 65 65 6e | 20 73 6f 6c 76 65 64 2e |ave been| solved.|
|00000de0| 20 52 65 74 75 72 6e 20 | 74 20 69 66 20 79 65 73 | Return |t if yes|
|00000df0| 2e 1f 0a 28 64 65 66 61 | 6c 69 61 73 20 27 6d 70 |...(defa|lias 'mp|
|00000e00| 75 7a 2d 63 68 65 63 6b | 2d 61 6c 6c 2d 73 6f 6c |uz-check|-all-sol|
|00000e10| 76 65 64 20 23 5b 6e 69 | 6c 20 22 c0 c1 8d 87 22 |ved #[ni|l "...."|
|00000e20| 20 5b 66 6f 75 6e 64 20 | 28 62 79 74 65 2d 63 6f | [found |(byte-co|
|00000e30| 64 65 20 22 c0 19 c2 09 | 54 89 11 56 ab 91 0b 09 |de "....|T..V....|
|00000e40| 48 ac 73 0c 09 48 ab 6e | c5 c6 c7 5c 22 88 aa 67 |H.s..H.n|...\"..g|
|00000e50| 29 c8 87 22 20 5b 2d 31 | 20 64 69 67 69 74 20 31 |).." [-1| digit 1|
|00000e60| 30 20 6d 70 75 7a 2d 66 | 6f 75 6e 64 2d 64 69 67 |0 mpuz-f|ound-dig|
|00000e70| 69 74 73 20 6d 70 75 7a | 2d 62 6f 61 72 64 20 74 |its mpuz|-board t|
|00000e80| 68 72 6f 77 20 66 6f 75 | 6e 64 20 6e 69 6c 20 74 |hrow fou|nd nil t|
|00000e90| 5d 20 33 29 5d 20 32 20 | 28 23 24 20 2e 20 33 35 |] 3)] 2 |(#$ . 35|
|00000ea0| 31 30 29 5d 29 0a 23 40 | 35 30 20 44 72 61 77 20 |10)]).#@|50 Draw |
|00000eb0| 72 61 6e 64 6f 6d 20 76 | 61 6c 75 65 73 20 74 6f |random v|alues to|
|00000ec0| 20 62 65 20 6d 75 6c 74 | 69 70 6c 69 65 64 20 69 | be mult|iplied i|
|00000ed0| 6e 20 61 20 70 75 7a 7a | 6c 65 2e 1f 0a 28 64 65 |n a puzz|le...(de|
|00000ee0| 66 61 6c 69 61 73 20 27 | 6d 70 75 7a 2d 72 61 6e |falias '|mpuz-ran|
|00000ef0| 64 6f 6d 2d 70 75 7a 7a | 6c 65 20 23 5b 6e 69 6c |dom-puzz|le #[nil|
|00000f00| 20 22 c0 20 88 c1 5c 6e | c3 5c 22 88 c3 89 89 89 | ". ..\n|.\".....|
|00000f10| 89 1c 1d 1e 06 1e 07 1e | 08 c9 ca 21 16 08 c9 cb |........|...!....|
|00000f20| 21 16 07 0e 08 0e 07 cc | a6 5f 16 06 0e 08 0e 07 |!.......|._......|
|00000f30| cc a5 5f 15 0e 08 0e 07 | 5f 14 0e 06 ca 57 ac 59 |.._.....|_....W.Y|
|00000f40| 0d ca 57 ac 54 cd 0e 08 | ce 5c 22 88 cd 0e 08 cc |..W.T...|.\".....|
|00000f50| a5 cf 5c 22 88 cd 0e 08 | cb a5 d0 5c 22 88 cd 0e |..\"....|...\"...|
|00000f60| 07 d1 5c 22 88 cd 0e 07 | cc a5 d2 5c 22 88 cd 0e |..\"....|...\"...|
|00000f70| 06 d3 5c 22 88 cd 0e 06 | cc a5 d4 5c 22 88 cd 0e |..\"....|...\"...|
|00000f80| 06 cb a5 d5 5c 22 88 cd | 0e 06 ca a5 d6 5c 22 88 |....\"..|.....\".|
|00000f90| cd 0d d7 5c 22 88 cd 0d | cc a5 d8 5c 22 88 cd 0d |...\"...|...\"...|
|00000fa0| cb a5 d9 5c 22 88 cd 0d | ca a5 da 5c 22 88 cd 0c |...\"...|...\"...|
|00000fb0| db 5c 22 88 cd 0c cc a5 | dc 5c 22 88 cd 0c cb a5 |.\".....|.\".....|
|00000fc0| dd 5c 22 88 cd 0c ca a5 | de 5c 22 88 cd 0c df a5 |.\".....|.\".....|
|00000fd0| e0 5c 22 2d 87 22 20 5b | 6d 70 75 7a 2d 62 75 69 |.\"-." [|mpuz-bui|
|00000fe0| 6c 64 2d 72 61 6e 64 6f | 6d 2d 70 65 72 6d 20 66 |ld-rando|m-perm f|
|00000ff0| 69 6c 6c 61 72 72 61 79 | 20 6d 70 75 7a 2d 62 6f |illarray| mpuz-bo|
|00001000| 61 72 64 20 6e 69 6c 20 | 45 20 44 20 43 20 42 20 |ard nil |E D C B |
|00001010| 41 20 72 61 6e 64 6f 6d | 20 31 30 30 30 20 31 30 |A random| 1000 10|
|00001020| 30 20 31 30 20 6d 70 75 | 7a 2d 70 75 74 2d 64 69 |0 10 mpu|z-put-di|
|00001030| 67 69 74 2d 6f 6e 2d 62 | 6f 61 72 64 20 28 32 20 |git-on-b|oard (2 |
|00001040| 2e 20 39 29 20 28 32 20 | 2e 20 37 29 20 28 32 20 |. 9) (2 |. 7) (2 |
|00001050| 2e 20 35 29 20 28 34 20 | 2e 20 39 29 20 28 34 20 |. 5) (4 |. 9) (4 |
|00001060| 2e 20 37 29 20 28 36 20 | 2e 20 39 29 20 28 36 20 |. 7) (6 |. 9) (6 |
|00001070| 2e 20 37 29 20 28 36 20 | 2e 20 35 29 20 28 36 20 |. 7) (6 |. 5) (6 |
|00001080| 2e 20 33 29 20 28 38 20 | 2e 20 37 29 20 28 38 20 |. 3) (8 |. 7) (8 |
|00001090| 2e 20 35 29 20 28 38 20 | 2e 20 33 29 20 28 38 20 |. 5) (8 |. 3) (8 |
|000010a0| 2e 20 31 29 20 28 31 30 | 20 2e 20 39 29 20 28 31 |. 1) (10| . 9) (1|
|000010b0| 30 20 2e 20 37 29 20 28 | 31 30 20 2e 20 35 29 20 |0 . 7) (|10 . 5) |
|000010c0| 28 31 30 20 2e 20 33 29 | 20 31 30 30 30 30 20 28 |(10 . 3)| 10000 (|
|000010d0| 31 30 20 2e 20 31 29 5d | 20 35 20 28 23 24 20 2e |10 . 1)]| 5 (#$ .|
|000010e0| 20 33 37 35 35 29 5d 29 | 0a 23 40 35 36 20 54 68 | 3755)])|.#@56 Th|
|000010f0| 65 20 67 65 6e 65 72 61 | 6c 20 70 69 63 74 75 72 |e genera|l pictur|
|00001100| 65 20 6f 66 20 74 68 65 | 20 70 75 7a 7a 6c 65 20 |e of the| puzzle |
|00001110| 73 63 72 65 65 6e 2c 20 | 61 73 20 61 20 73 74 72 |screen, |as a str|
|00001120| 69 6e 67 2e 1f 0a 28 64 | 65 66 63 6f 6e 73 74 20 |ing...(d|efconst |
|00001130| 6d 70 75 7a 2d 66 72 61 | 6d 65 77 6f 72 6b 20 22 |mpuz-fra|mework "|
|00001140| 5c 6e 20 20 20 20 20 2e | 20 2e 20 2e 5c 6e 20 20 |\n .| . .\n |
|00001150| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001160| 20 4e 75 6d 62 65 72 20 | 6f 66 20 65 72 72 6f 72 | Number |of error|
|00001170| 73 20 28 74 68 69 73 20 | 67 61 6d 65 29 3a 20 30 |s (this |game): 0|
|00001180| 5c 6e 20 20 20 20 78 20 | 20 2e 20 2e 5c 6e 20 20 |\n x | . .\n |
|00001190| 20 2d 2d 2d 2d 2d 2d 2d | 5c 6e 20 20 20 2e 20 2e | -------|\n . .|
|000011a0| 20 2e 20 2e 5c 6e 20 20 | 20 20 20 20 20 20 20 20 | . .\n | |
|000011b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 4e 75 | | Nu|
|000011c0| 6d 62 65 72 20 6f 66 20 | 63 6f 6d 70 6c 65 74 65 |mber of |complete|
|000011d0| 64 20 67 61 6d 65 73 3a | 20 30 5c 6e 20 2e 20 2e |d games:| 0\n . .|
|000011e0| 20 2e 20 2e 5c 6e 20 2d | 2d 2d 2d 2d 2d 2d 2d 2d | . .\n -|--------|
|000011f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 41 76 | | Av|
|00001200| 65 72 61 67 65 20 6e 75 | 6d 62 65 72 20 6f 66 20 |erage nu|mber of |
|00001210| 65 72 72 6f 72 73 3a 20 | 30 2e 30 30 5c 6e 20 2e |errors: |0.00\n .|
|00001220| 20 2e 20 2e 20 2e 20 2e | 22 20 28 23 24 20 2e 20 | . . . .|" (#$ . |
|00001230| 34 33 33 34 29 29 0a 23 | 40 35 32 20 43 72 65 61 |4334)).#|@52 Crea|
|00001240| 74 65 20 28 6f 72 20 72 | 65 63 72 65 61 74 65 29 |te (or r|ecreate)|
|00001250| 20 74 68 65 20 70 75 7a | 7a 6c 65 20 62 75 66 66 | the puz|zle buff|
|00001260| 65 72 2e 20 52 65 74 75 | 72 6e 20 69 74 2e 1f 0a |er. Retu|rn it...|
|00001270| 28 64 65 66 61 6c 69 61 | 73 20 27 6d 70 75 7a 2d |(defalia|s 'mpuz-|
|00001280| 63 72 65 61 74 65 2d 62 | 75 66 66 65 72 20 23 5b |create-b|uffer #[|
|00001290| 6e 69 6c 20 22 c0 c1 21 | 1a 8a 5c 6e 71 88 c3 1c |nil "..!|..\nq...|
|000012a0| c5 20 88 0e 06 63 88 c7 | 20 88 c8 20 88 c9 20 88 |. ...c..| .. .. .|
|000012b0| 2a 5c 6e 29 87 22 20 5b | 67 65 74 2d 62 75 66 66 |*\n)." [|get-buff|
|000012c0| 65 72 2d 63 72 65 61 74 | 65 20 22 2a 4d 75 6c 74 |er-creat|e "*Mult|
|000012d0| 20 50 75 7a 7a 6c 65 2a | 22 20 62 75 66 66 20 6e | Puzzle*|" buff n|
|000012e0| 69 6c 20 62 75 66 66 65 | 72 2d 72 65 61 64 2d 6f |il buffe|r-read-o|
|000012f0| 6e 6c 79 20 65 72 61 73 | 65 2d 62 75 66 66 65 72 |nly eras|e-buffer|
|00001300| 20 6d 70 75 7a 2d 66 72 | 61 6d 65 77 6f 72 6b 20 | mpuz-fr|amework |
|00001310| 6d 70 75 7a 2d 70 61 69 | 6e 74 2d 62 6f 61 72 64 |mpuz-pai|nt-board|
|00001320| 20 6d 70 75 7a 2d 70 61 | 69 6e 74 2d 65 72 72 6f | mpuz-pa|int-erro|
|00001330| 72 73 20 6d 70 75 7a 2d | 70 61 69 6e 74 2d 73 74 |rs mpuz-|paint-st|
|00001340| 61 74 69 73 74 69 63 73 | 5d 20 32 20 28 23 24 20 |atistics|] 2 (#$ |
|00001350| 2e 20 34 36 36 38 29 5d | 29 0a 23 40 34 31 20 50 |. 4668)]|).#@41 P|
|00001360| 61 69 6e 74 20 65 72 72 | 6f 72 20 63 6f 75 6e 74 |aint err|or count|
|00001370| 20 6f 6e 20 74 68 65 20 | 70 75 7a 7a 6c 65 20 73 | on the |puzzle s|
|00001380| 63 72 65 65 6e 2e 1f 0a | 28 64 65 66 61 6c 69 61 |creen...|(defalia|
|00001390| 73 20 27 6d 70 75 7a 2d | 70 61 69 6e 74 2d 65 72 |s 'mpuz-|paint-er|
|000013a0| 72 6f 72 73 20 23 5b 6e | 69 6c 20 22 c0 20 88 c1 |rors #[n|il ". ..|
|000013b0| 1a c3 c4 21 88 c5 c6 21 | 88 c7 20 88 c8 0e 09 21 |...!...!|.. ....!|
|000013c0| 63 29 87 22 20 5b 6d 70 | 75 7a 2d 73 77 69 74 63 |c)." [mp|uz-switc|
|000013d0| 68 2d 74 6f 2d 77 69 6e | 64 6f 77 20 6e 69 6c 20 |h-to-win|dow nil |
|000013e0| 62 75 66 66 65 72 2d 72 | 65 61 64 2d 6f 6e 6c 79 |buffer-r|ead-only|
|000013f0| 20 67 6f 74 6f 2d 6c 69 | 6e 65 20 33 20 6d 6f 76 | goto-li|ne 3 mov|
|00001400| 65 2d 74 6f 2d 63 6f 6c | 75 6d 6e 20 34 39 20 6d |e-to-col|umn 49 m|
|00001410| 70 75 7a 2d 64 65 6c 65 | 74 65 2d 6c 69 6e 65 20 |puz-dele|te-line |
|00001420| 70 72 69 6e 31 2d 74 6f | 2d 73 74 72 69 6e 67 20 |prin1-to|-string |
|00001430| 6d 70 75 7a 2d 6e 62 2d | 65 72 72 6f 72 73 5d 20 |mpuz-nb-|errors] |
|00001440| 32 20 28 23 24 20 2e 20 | 34 39 35 39 29 5d 29 0a |2 (#$ . |4959)]).|
|00001450| 23 40 36 31 20 50 61 69 | 6e 74 20 73 74 61 74 69 |#@61 Pai|nt stati|
|00001460| 73 74 69 63 73 20 61 62 | 6f 75 74 20 70 72 65 76 |stics ab|out prev|
|00001470| 69 6f 75 73 20 67 61 6d | 65 73 20 6f 6e 20 74 68 |ious gam|es on th|
|00001480| 65 20 70 75 7a 7a 6c 65 | 20 73 63 72 65 65 6e 2e |e puzzle| screen.|
|00001490| 1f 0a 28 64 65 66 61 6c | 69 61 73 20 27 6d 70 75 |..(defal|ias 'mpu|
|000014a0| 7a 2d 70 61 69 6e 74 2d | 73 74 61 74 69 73 74 69 |z-paint-|statisti|
|000014b0| 63 73 20 23 5b 6e 69 6c | 20 22 08 c1 55 ab 83 c1 |cs #[nil| "..U...|
|000014c0| aa 89 08 5c 6e c3 5f 5c | 5c 08 89 5c 5c a5 89 1c |...\n._\|\..\\...|
|000014d0| c5 a6 1e 06 c7 1e 08 c9 | ca 21 88 cb cc 21 88 cd |........|.!...!..|
|000014e0| 20 88 ce 08 21 63 88 c9 | cf 21 88 cb d0 21 88 cd | ...!c..|.!...!..|
|000014f0| 20 88 d1 d2 0c c5 a5 0e | 06 d3 a5 0e 06 d3 a6 24 | .......|.......$|
|00001500| 63 2b 87 22 20 5b 6d 70 | 75 7a 2d 6e 62 2d 63 6f |c+." [mp|uz-nb-co|
|00001510| 6d 70 6c 65 74 65 64 2d | 67 61 6d 65 73 20 30 20 |mpleted-|games 0 |
|00001520| 6d 70 75 7a 2d 6e 62 2d | 63 75 6d 75 6c 61 74 65 |mpuz-nb-|cumulate|
|00001530| 64 2d 65 72 72 6f 72 73 | 20 32 30 30 20 6d 65 61 |d-errors| 200 mea|
|00001540| 6e 20 31 30 30 20 66 72 | 61 63 2d 70 61 72 74 20 |n 100 fr|ac-part |
|00001550| 6e 69 6c 20 62 75 66 66 | 65 72 2d 72 65 61 64 2d |nil buff|er-read-|
|00001560| 6f 6e 6c 79 20 67 6f 74 | 6f 2d 6c 69 6e 65 20 37 |only got|o-line 7|
|00001570| 20 6d 6f 76 65 2d 74 6f | 2d 63 6f 6c 75 6d 6e 20 | move-to|-column |
|00001580| 35 31 20 6d 70 75 7a 2d | 64 65 6c 65 74 65 2d 6c |51 mpuz-|delete-l|
|00001590| 69 6e 65 20 70 72 69 6e | 31 2d 74 6f 2d 73 74 72 |ine prin|1-to-str|
|000015a0| 69 6e 67 20 39 20 35 30 | 20 66 6f 72 6d 61 74 20 |ing 9 50| format |
|000015b0| 22 25 64 2e 25 64 25 64 | 22 20 31 30 5d 20 37 20 |"%d.%d%d|" 10] 7 |
|000015c0| 28 23 24 20 2e 20 35 32 | 30 35 29 5d 29 0a 23 40 |(#$ . 52|05)]).#@|
|000015d0| 34 35 20 50 61 69 6e 74 | 20 62 6f 61 72 64 20 73 |45 Paint| board s|
|000015e0| 69 74 75 61 74 69 6f 6e | 20 6f 6e 20 74 68 65 20 |ituation| on the |
|000015f0| 70 75 7a 7a 6c 65 20 73 | 63 72 65 65 6e 2e 1f 0a |puzzle s|creen...|
|00001600| 28 64 65 66 61 6c 69 61 | 73 20 27 6d 70 75 7a 2d |(defalia|s 'mpuz-|
|00001610| 70 61 69 6e 74 2d 62 6f | 61 72 64 20 23 5b 6e 69 |paint-bo|ard #[ni|
|00001620| 6c 20 22 c0 20 88 c1 1a | c3 5c 6e 54 89 12 56 ab |l ". ...|.\nT..V.|
|00001630| 88 c4 0d 5c 6e 48 21 88 | aa 70 29 65 62 87 22 20 |...\nH!.|.p)eb." |
|00001640| 5b 6d 70 75 7a 2d 73 77 | 69 74 63 68 2d 74 6f 2d |[mpuz-sw|itch-to-|
|00001650| 77 69 6e 64 6f 77 20 2d | 31 20 6c 65 74 74 65 72 |window -|1 letter|
|00001660| 20 31 30 20 6d 70 75 7a | 2d 70 61 69 6e 74 2d 64 | 10 mpuz|-paint-d|
|00001670| 69 67 69 74 20 6d 70 75 | 7a 2d 6c 65 74 74 65 72 |igit mpu|z-letter|
|00001680| 2d 74 6f 2d 64 69 67 69 | 74 5d 20 33 20 28 23 24 |-to-digi|t] 3 (#$|
|00001690| 20 2e 20 35 35 38 37 29 | 5d 29 0a 23 40 35 33 20 | . 5587)|]).#@53 |
|000016a0| 50 61 69 6e 74 20 61 6c | 6c 20 6f 63 63 75 72 72 |Paint al|l occurr|
|000016b0| 65 6e 63 65 73 20 6f 66 | 20 44 49 47 49 54 20 6f |ences of| DIGIT o|
|000016c0| 6e 20 74 68 65 20 70 75 | 7a 7a 6c 65 20 62 6f 61 |n the pu|zzle boa|
|000016d0| 72 64 2e 1f 0a 28 64 65 | 66 61 6c 69 61 73 20 27 |rd...(de|falias '|
|000016e0| 6d 70 75 7a 2d 70 61 69 | 6e 74 2d 64 69 67 69 74 |mpuz-pai|nt-digit|
|000016f0| 20 23 5b 28 64 69 67 69 | 74 29 20 22 08 09 48 ab | #[(digi|t) "..H.|
|00001700| 85 09 c2 5c 5c aa 85 0b | 09 48 c4 5c 5c 0d 09 48 |...\\...|.H.\\..H|
|00001710| 1e 06 1e 07 c8 1e 09 0e | 06 ad a3 ca 0e 06 40 40 |........|......@@|
|00001720| 21 88 cb 0e 06 40 41 21 | 88 0e 07 63 88 cc cd 21 |!....@A!|...c...!|
|00001730| 88 ce cd 21 88 0e 06 41 | 89 16 06 ac 5e c8 2b 87 |...!...A|....^.+.|
|00001740| 22 20 5b 6d 70 75 7a 2d | 66 6f 75 6e 64 2d 64 69 |" [mpuz-|found-di|
|00001750| 67 69 74 73 20 64 69 67 | 69 74 20 3f 30 20 6d 70 |gits dig|it ?0 mp|
|00001760| 75 7a 2d 64 69 67 69 74 | 2d 74 6f 2d 6c 65 74 74 |uz-digit|-to-lett|
|00001770| 65 72 20 3f 41 20 6d 70 | 75 7a 2d 62 6f 61 72 64 |er ?A mp|uz-board|
|00001780| 20 73 71 75 61 72 65 2d | 6c 20 63 68 61 72 20 6e | square-|l char n|
|00001790| 69 6c 20 62 75 66 66 65 | 72 2d 72 65 61 64 2d 6f |il buffe|r-read-o|
|000017a0| 6e 6c 79 20 67 6f 74 6f | 2d 6c 69 6e 65 20 6d 6f |nly goto|-line mo|
|000017b0| 76 65 2d 74 6f 2d 63 6f | 6c 75 6d 6e 20 64 65 6c |ve-to-co|lumn del|
|000017c0| 65 74 65 2d 63 68 61 72 | 20 31 20 62 61 63 6b 77 |ete-char| 1 backw|
|000017d0| 61 72 64 2d 63 68 61 72 | 5d 20 34 20 28 23 24 20 |ard-char|] 4 (#$ |
|000017e0| 2e 20 35 37 39 32 29 5d | 29 0a 23 40 33 35 20 43 |. 5792)]|).#@35 C|
|000017f0| 6c 65 61 72 20 66 72 6f | 6d 20 70 6f 69 6e 74 20 |lear fro|m point |
|00001800| 74 6f 20 6e 65 78 74 20 | 6e 65 77 6c 69 6e 65 2e |to next |newline.|
|00001810| 1f 0a 28 64 65 66 61 6c | 69 61 73 20 27 6d 70 75 |..(defal|ias 'mpu|
|00001820| 7a 2d 64 65 6c 65 74 65 | 2d 6c 69 6e 65 20 23 5b |z-delete|-line #[|
|00001830| 6e 69 6c 20 22 60 66 c0 | 55 3f ad 86 c1 c2 21 88 |nil "`f.|U?....!.|
|00001840| aa 73 87 22 20 5b 3f 5c | 6e 20 64 65 6c 65 74 65 |.s." [?\|n delete|
|00001850| 2d 63 68 61 72 20 31 5d | 20 32 20 28 23 24 20 2e |-char 1]| 2 (#$ .|
|00001860| 20 36 31 32 37 29 5d 29 | 0a 23 40 33 37 20 47 65 | 6127)])|.#@37 Ge|
|00001870| 74 20 74 68 65 20 70 75 | 7a 7a 6c 65 20 62 75 66 |t the pu|zzle buf|
|00001880| 66 65 72 20 69 66 20 69 | 74 20 65 78 69 73 74 73 |fer if i|t exists|
|00001890| 2e 1f 0a 28 64 65 66 61 | 6c 69 61 73 20 27 6d 70 |...(defa|lias 'mp|
|000018a0| 75 7a 2d 67 65 74 2d 62 | 75 66 66 65 72 20 23 5b |uz-get-b|uffer #[|
|000018b0| 6e 69 6c 20 22 c0 c1 21 | 87 22 20 5b 67 65 74 2d |nil "..!|." [get-|
|000018c0| 62 75 66 66 65 72 20 22 | 2a 4d 75 6c 74 20 50 75 |buffer "|*Mult Pu|
|000018d0| 7a 7a 6c 65 2a 22 5d 20 | 32 20 28 23 24 20 2e 20 |zzle*"] |2 (#$ . |
|000018e0| 36 32 35 34 29 5d 29 0a | 23 40 35 36 20 46 69 6e |6254)]).|#@56 Fin|
|000018f0| 64 20 6f 72 20 63 72 65 | 61 74 65 20 74 68 65 20 |d or cre|ate the |
|00001900| 4d 75 6c 74 2d 50 75 7a | 7a 6c 65 20 62 75 66 66 |Mult-Puz|zle buff|
|00001910| 65 72 2c 20 61 6e 64 20 | 64 69 73 70 6c 61 79 20 |er, and |display |
|00001920| 69 74 2e 1f 0a 28 64 65 | 66 61 6c 69 61 73 20 27 |it...(de|falias '|
|00001930| 6d 70 75 7a 2d 73 77 69 | 74 63 68 2d 74 6f 2d 77 |mpuz-swi|tch-to-w|
|00001940| 69 6e 64 6f 77 20 23 5b | 6e 69 6c 20 22 c0 20 89 |indow #[|nil ". .|
|00001950| 19 ac 83 c2 20 11 c3 09 | 21 88 0c ac 83 c5 20 88 |.... ...|!..... .|
|00001960| c6 20 29 87 22 20 5b 6d | 70 75 7a 2d 67 65 74 2d |. )." [m|puz-get-|
|00001970| 62 75 66 66 65 72 20 62 | 75 66 66 20 6d 70 75 7a |buffer b|uff mpuz|
|00001980| 2d 63 72 65 61 74 65 2d | 62 75 66 66 65 72 20 73 |-create-|buffer s|
|00001990| 77 69 74 63 68 2d 74 6f | 2d 62 75 66 66 65 72 20 |witch-to|-buffer |
|000019a0| 62 75 66 66 65 72 2d 72 | 65 61 64 2d 6f 6e 6c 79 |buffer-r|ead-only|
|000019b0| 20 74 6f 67 67 6c 65 2d | 72 65 61 64 2d 6f 6e 6c | toggle-|read-onl|
|000019c0| 79 20 6d 70 75 7a 2d 6d | 6f 64 65 5d 20 33 20 28 |y mpuz-m|ode] 3 (|
|000019d0| 23 24 20 2e 20 36 33 38 | 31 29 5d 29 0a 23 40 33 |#$ . 638|1)]).#@3|
|000019e0| 31 20 41 62 6f 72 74 20 | 61 6e 79 20 70 75 7a 7a |1 Abort |any puzz|
|000019f0| 6c 65 20 69 6e 20 70 72 | 6f 67 72 65 73 73 2e 1f |le in pr|ogress..|
|00001a00| 0a 28 64 65 66 61 6c 69 | 61 73 20 27 6d 70 75 7a |.(defali|as 'mpuz|
|00001a10| 2d 61 62 6f 72 74 2d 67 | 61 6d 65 20 23 5b 6e 69 |-abort-g|ame #[ni|
|00001a20| 6c 20 22 c0 c1 21 88 c2 | 13 c4 15 c6 0e 07 c2 5c |l "..!..|.......\|
|00001a30| 22 88 c8 20 89 1e 09 ad | 84 ca 0e 09 21 29 87 22 |".. ....|....!)."|
|00001a40| 20 5b 6d 65 73 73 61 67 | 65 20 22 4d 75 6c 74 20 | [messag|e "Mult |
|00001a50| 50 75 7a 7a 6c 65 20 61 | 62 6f 72 74 65 64 2e 22 |Puzzle a|borted."|
|00001a60| 20 6e 69 6c 20 6d 70 75 | 7a 2d 69 6e 2d 70 72 6f | nil mpu|z-in-pro|
|00001a70| 67 72 65 73 73 20 30 20 | 6d 70 75 7a 2d 6e 62 2d |gress 0 |mpuz-nb-|
|00001a80| 65 72 72 6f 72 73 20 66 | 69 6c 6c 61 72 72 61 79 |errors f|illarray|
|00001a90| 20 6d 70 75 7a 2d 62 6f | 61 72 64 20 6d 70 75 7a | mpuz-bo|ard mpuz|
|00001aa0| 2d 67 65 74 2d 62 75 66 | 66 65 72 20 62 75 66 66 |-get-buf|fer buff|
|00001ab0| 20 6b 69 6c 6c 2d 62 75 | 66 66 65 72 5d 20 34 20 | kill-bu|ffer] 4 |
|00001ac0| 28 23 24 20 2e 20 36 36 | 32 36 29 5d 29 0a 23 40 |(#$ . 66|26)]).#@|
|00001ad0| 32 31 20 53 74 61 72 74 | 20 61 20 6e 65 77 20 70 |21 Start| a new p|
|00001ae0| 75 7a 7a 6c 65 2e 1f 0a | 28 64 65 66 61 6c 69 61 |uzzle...|(defalia|
|00001af0| 73 20 27 6d 70 75 7a 2d | 73 74 61 72 74 2d 6e 65 |s 'mpuz-|start-ne|
|00001b00| 77 2d 67 61 6d 65 20 23 | 5b 6e 69 6c 20 22 c0 c1 |w-game #|[nil "..|
|00001b10| 21 88 c2 13 c4 15 c6 0e | 07 c8 5c 22 88 c9 20 88 |!.......|..\".. .|
|00001b20| ca 20 88 cb 20 88 cc 20 | 88 cd 20 87 22 20 5b 6d |. .. .. |.. ." [m|
|00001b30| 65 73 73 61 67 65 20 22 | 48 65 72 65 20 77 65 20 |essage "|Here we |
|00001b40| 67 6f 2e 2e 2e 22 20 30 | 20 6d 70 75 7a 2d 6e 62 |go..." 0| mpuz-nb|
|00001b50| 2d 65 72 72 6f 72 73 20 | 74 20 6d 70 75 7a 2d 69 |-errors |t mpuz-i|
|00001b60| 6e 2d 70 72 6f 67 72 65 | 73 73 20 66 69 6c 6c 61 |n-progre|ss filla|
|00001b70| 72 72 61 79 20 6d 70 75 | 7a 2d 66 6f 75 6e 64 2d |rray mpu|z-found-|
|00001b80| 64 69 67 69 74 73 20 6e | 69 6c 20 6d 70 75 7a 2d |digits n|il mpuz-|
|00001b90| 72 61 6e 64 6f 6d 2d 70 | 75 7a 7a 6c 65 20 6d 70 |random-p|uzzle mp|
|00001ba0| 75 7a 2d 73 77 69 74 63 | 68 2d 74 6f 2d 77 69 6e |uz-switc|h-to-win|
|00001bb0| 64 6f 77 20 6d 70 75 7a | 2d 70 61 69 6e 74 2d 62 |dow mpuz|-paint-b|
|00001bc0| 6f 61 72 64 20 6d 70 75 | 7a 2d 70 61 69 6e 74 2d |oard mpu|z-paint-|
|00001bd0| 65 72 72 6f 72 73 20 6d | 70 75 7a 2d 61 73 6b 2d |errors m|puz-ask-|
|00001be0| 66 6f 72 2d 74 72 79 5d | 20 33 20 28 23 24 20 2e |for-try]| 3 (#$ .|
|00001bf0| 20 36 38 36 37 29 5d 29 | 0a 23 40 34 32 20 41 73 | 6867)])|.#@42 As|
|00001c00| 6b 20 69 66 20 75 73 65 | 72 20 77 61 6e 74 73 20 |k if use|r wants |
|00001c10| 74 6f 20 73 74 61 72 74 | 20 61 20 6e 65 77 20 70 |to start| a new p|
|00001c20| 75 7a 7a 6c 65 2e 1f 0a | 28 64 65 66 61 6c 69 61 |uzzle...|(defalia|
|00001c30| 73 20 27 6d 70 75 7a 2d | 6f 66 66 65 72 2d 6e 65 |s 'mpuz-|offer-ne|
|00001c40| 77 2d 67 61 6d 65 20 23 | 5b 6e 69 6c 20 22 c0 c1 |w-game #|[nil "..|
|00001c50| 21 ab 83 c2 20 87 c3 c4 | 21 87 22 20 5b 79 2d 6f |!... ...|!." [y-o|
|00001c60| 72 2d 6e 2d 70 20 22 53 | 74 61 72 74 20 61 20 6e |r-n-p "S|tart a n|
|00001c70| 65 77 20 67 61 6d 65 20 | 22 20 6d 70 75 7a 2d 73 |ew game |" mpuz-s|
|00001c80| 74 61 72 74 2d 6e 65 77 | 2d 67 61 6d 65 20 6d 65 |tart-new|-game me|
|00001c90| 73 73 61 67 65 20 22 4f | 4b 2e 20 49 20 77 6f 6e |ssage "O|K. I won|
|00001ca0| 27 74 2e 22 5d 20 32 20 | 28 23 24 20 2e 20 37 31 |'t."] 2 |(#$ . 71|
|00001cb0| 36 36 29 5d 29 0a 23 40 | 33 39 20 4d 75 6c 74 69 |66)]).#@|39 Multi|
|00001cc0| 70 6c 69 63 61 74 69 6f | 6e 20 70 75 7a 7a 6c 65 |plicatio|n puzzle|
|00001cd0| 20 77 69 74 68 20 47 4e | 55 20 45 6d 61 63 73 2e | with GN|U Emacs.|
|00001ce0| 1f 0a 28 64 65 66 61 6c | 69 61 73 20 27 6d 70 75 |..(defal|ias 'mpu|
|00001cf0| 7a 20 23 5b 6e 69 6c 20 | 22 c0 20 88 09 ab 83 c2 |z #[nil |". .....|
|00001d00| 20 87 c3 20 87 22 20 5b | 6d 70 75 7a 2d 73 77 69 | .. ." [|mpuz-swi|
|00001d10| 74 63 68 2d 74 6f 2d 77 | 69 6e 64 6f 77 20 6d 70 |tch-to-w|indow mp|
|00001d20| 75 7a 2d 69 6e 2d 70 72 | 6f 67 72 65 73 73 20 6d |uz-in-pr|ogress m|
|00001d30| 70 75 7a 2d 6f 66 66 65 | 72 2d 61 62 6f 72 74 20 |puz-offe|r-abort |
|00001d40| 6d 70 75 7a 2d 73 74 61 | 72 74 2d 6e 65 77 2d 67 |mpuz-sta|rt-new-g|
|00001d50| 61 6d 65 5d 20 31 20 28 | 23 24 20 2e 20 37 33 35 |ame] 1 (|#$ . 735|
|00001d60| 35 29 20 6e 69 6c 5d 29 | 0a 23 40 34 34 20 41 73 |5) nil])|.#@44 As|
|00001d70| 6b 20 69 66 20 75 73 65 | 72 20 77 61 6e 74 73 20 |k if use|r wants |
|00001d80| 74 6f 20 61 62 6f 72 74 | 20 63 75 72 72 65 6e 74 |to abort| current|
|00001d90| 20 70 75 7a 7a 6c 65 2e | 1f 0a 28 64 65 66 61 6c | puzzle.|..(defal|
|00001da0| 69 61 73 20 27 6d 70 75 | 7a 2d 6f 66 66 65 72 2d |ias 'mpu|z-offer-|
|00001db0| 61 62 6f 72 74 20 23 5b | 6e 69 6c 20 22 c0 c1 21 |abort #[|nil "..!|
|00001dc0| ab 83 c2 20 87 c3 20 87 | 22 20 5b 79 2d 6f 72 2d |... .. .|" [y-or-|
|00001dd0| 6e 2d 70 20 22 41 62 6f | 72 74 20 67 61 6d 65 20 |n-p "Abo|rt game |
|00001de0| 22 20 6d 70 75 7a 2d 61 | 62 6f 72 74 2d 67 61 6d |" mpuz-a|bort-gam|
|00001df0| 65 20 6d 70 75 7a 2d 61 | 73 6b 2d 66 6f 72 2d 74 |e mpuz-a|sk-for-t|
|00001e00| 72 79 5d 20 32 20 28 23 | 24 20 2e 20 37 35 33 34 |ry] 2 (#|$ . 7534|
|00001e10| 29 20 6e 69 6c 5d 29 0a | 23 40 33 34 20 41 73 6b |) nil]).|#@34 Ask|
|00001e20| 20 66 6f 72 20 75 73 65 | 72 20 70 72 6f 70 6f 73 | for use|r propos|
|00001e30| 61 6c 20 69 6e 20 70 75 | 7a 7a 6c 65 2e 1f 0a 28 |al in pu|zzle...(|
|00001e40| 64 65 66 61 6c 69 61 73 | 20 27 6d 70 75 7a 2d 61 |defalias| 'mpuz-a|
|00001e50| 73 6b 2d 66 6f 72 2d 74 | 72 79 20 23 5b 6e 69 6c |sk-for-t|ry #[nil|
|00001e60| 20 22 c0 c1 21 87 22 20 | 5b 6d 65 73 73 61 67 65 | "..!." |[message|
|00001e70| 20 22 59 6f 75 72 20 74 | 72 79 20 3f 22 5d 20 32 | "Your t|ry ?"] 2|
|00001e80| 20 28 23 24 20 2e 20 37 | 37 30 39 29 5d 29 0a 23 | (#$ . 7|709)]).#|
|00001e90| 40 34 31 20 50 72 6f 70 | 6f 73 65 20 61 20 64 69 |@41 Prop|ose a di|
|00001ea0| 67 69 74 20 66 6f 72 20 | 61 20 6c 65 74 74 65 72 |git for |a letter|
|00001eb0| 20 69 6e 20 70 75 7a 7a | 6c 65 2e 1f 0a 28 64 65 | in puzz|le...(de|
|00001ec0| 66 61 6c 69 61 73 20 27 | 6d 70 75 7a 2d 74 72 79 |falias '|mpuz-try|
|00001ed0| 2d 6c 65 74 74 65 72 20 | 23 5b 6e 69 6c 20 22 08 |-letter |#[nil ".|
|00001ee0| ab d6 c1 89 89 89 1a 1b | 1c 1d 0e 06 96 15 0e 07 |........|........|
|00001ef0| 0d c8 5a 48 14 0e 09 0c | 48 ab 86 c2 ca 0d 5c 22 |..ZH....|H.....\"|
|00001f00| aa b5 0e 0b 0c 48 ac 86 | c2 cc 0d 5c 22 aa a9 c2 |.....H..|...\"...|
|00001f10| cd 0d 5c 22 88 ce 20 89 | 13 cf 61 ab 83 ce 20 13 |..\".. .|..a... .|
|00001f20| c2 d0 0d 0b 23 88 0b d1 | 56 ac 85 0b d2 57 ab 85 |....#...|V....W..|
|00001f30| d3 d4 21 aa 84 d5 0d 0b | 5c 22 2c 87 d6 20 87 22 |..!.....|\",.. ."|
|00001f40| 20 5b 6d 70 75 7a 2d 69 | 6e 2d 70 72 6f 67 72 65 | [mpuz-i|n-progre|
|00001f50| 73 73 20 6e 69 6c 20 6d | 65 73 73 61 67 65 20 64 |ss nil m|essage d|
|00001f60| 69 67 69 74 2d 63 68 61 | 72 20 64 69 67 69 74 20 |igit-cha|r digit |
|00001f70| 6c 65 74 74 65 72 2d 63 | 68 61 72 20 6c 61 73 74 |letter-c|har last|
|00001f80| 2d 63 6f 6d 6d 61 6e 64 | 2d 63 68 61 72 20 6d 70 |-command|-char mp|
|00001f90| 75 7a 2d 6c 65 74 74 65 | 72 2d 74 6f 2d 64 69 67 |uz-lette|r-to-dig|
|00001fa0| 69 74 20 3f 41 20 6d 70 | 75 7a 2d 66 6f 75 6e 64 |it ?A mp|uz-found|
|00001fb0| 2d 64 69 67 69 74 73 20 | 22 25 63 20 61 6c 72 65 |-digits |"%c alre|
|00001fc0| 61 64 79 20 73 6f 6c 76 | 65 64 2e 22 20 6d 70 75 |ady solv|ed." mpu|
|00001fd0| 7a 2d 62 6f 61 72 64 20 | 22 25 63 20 64 6f 65 73 |z-board |"%c does|
|00001fe0| 20 6e 6f 74 20 61 70 70 | 65 61 72 2e 22 20 22 25 | not app|ear." "%|
|00001ff0| 63 20 3d 20 22 20 72 65 | 61 64 2d 63 68 61 72 20 |c = " re|ad-char |
|00002000| 3f 5c 3d 20 22 25 63 20 | 3d 20 25 63 22 20 3f 39 |?\= "%c |= %c" ?9|
|00002010| 20 3f 30 20 64 69 6e 67 | 20 74 20 6d 70 75 7a 2d | ?0 ding| t mpuz-|
|00002020| 74 72 79 2d 70 72 6f 70 | 6f 73 61 6c 20 6d 70 75 |try-prop|osal mpu|
|00002030| 7a 2d 6f 66 66 65 72 2d | 6e 65 77 2d 67 61 6d 65 |z-offer-|new-game|
|00002040| 5d 20 35 20 28 23 24 20 | 2e 20 37 38 32 38 29 20 |] 5 (#$ |. 7828) |
|00002050| 6e 69 6c 5d 29 0a 23 40 | 34 35 20 50 72 6f 70 6f |nil]).#@|45 Propo|
|00002060| 73 65 20 4c 45 54 54 45 | 52 2d 43 48 41 52 20 61 |se LETTE|R-CHAR a|
|00002070| 73 20 63 6f 64 65 20 66 | 6f 72 20 44 49 47 49 54 |s code f|or DIGIT|
|00002080| 2d 43 48 41 52 2e 1f 0a | 28 64 65 66 61 6c 69 61 |-CHAR...|(defalia|
|00002090| 73 20 27 6d 70 75 7a 2d | 74 72 79 2d 70 72 6f 70 |s 'mpuz-|try-prop|
|000020a0| 6f 73 61 6c 20 23 5b 28 | 6c 65 74 74 65 72 2d 63 |osal #[(|letter-c|
|000020b0| 68 61 72 20 64 69 67 69 | 74 2d 63 68 61 72 29 20 |har digi|t-char) |
|000020c0| 22 08 c1 5a 1a 0b c4 5a | 1d 0e 06 5c 6e 48 1e 07 |"..Z...Z|...\nH..|
|000020d0| 0e 08 0e 07 48 ab 85 c9 | ca 21 aa a4 0d 0e 07 55 |....H...|.!.....U|
|000020e0| ab 8e c9 cb 08 0b 23 88 | cc 20 88 cd 0d 21 aa 90 |......#.|. ...!..|
|000020f0| c9 ce 08 0b 23 88 cc 20 | 88 0e 0f 54 16 0f d0 20 |....#.. |...T... |
|00002100| 2b 87 22 20 5b 6c 65 74 | 74 65 72 2d 63 68 61 72 |+." [let|ter-char|
|00002110| 20 3f 41 20 6c 65 74 74 | 65 72 20 64 69 67 69 74 | ?A lett|er digit|
|00002120| 2d 63 68 61 72 20 3f 30 | 20 64 69 67 69 74 20 6d |-char ?0| digit m|
|00002130| 70 75 7a 2d 6c 65 74 74 | 65 72 2d 74 6f 2d 64 69 |puz-lett|er-to-di|
|00002140| 67 69 74 20 63 6f 72 72 | 65 63 74 2d 64 69 67 69 |git corr|ect-digi|
|00002150| 74 20 6d 70 75 7a 2d 66 | 6f 75 6e 64 2d 64 69 67 |t mpuz-f|ound-dig|
|00002160| 69 74 73 20 6d 65 73 73 | 61 67 65 20 22 25 63 20 |its mess|age "%c |
|00002170| 68 61 73 20 61 6c 72 65 | 61 64 79 20 62 65 65 6e |has alre|ady been|
|00002180| 20 66 6f 75 6e 64 2e 22 | 20 22 25 63 20 3d 20 25 | found."| "%c = %|
|00002190| 63 20 63 6f 72 72 65 63 | 74 20 21 22 20 6d 70 75 |c correc|t !" mpu|
|000021a0| 7a 2d 64 69 6e 67 20 6d | 70 75 7a 2d 63 6f 72 72 |z-ding m|puz-corr|
|000021b0| 65 63 74 2d 67 75 65 73 | 73 20 22 25 63 20 3d 20 |ect-gues|s "%c = |
|000021c0| 25 63 20 69 6e 63 6f 72 | 72 65 63 74 20 21 22 20 |%c incor|rect !" |
|000021d0| 6d 70 75 7a 2d 6e 62 2d | 65 72 72 6f 72 73 20 6d |mpuz-nb-|errors m|
|000021e0| 70 75 7a 2d 70 61 69 6e | 74 2d 65 72 72 6f 72 73 |puz-pain|t-errors|
|000021f0| 5d 20 34 20 28 23 24 20 | 2e 20 38 32 38 33 29 5d |] 4 (#$ |. 8283)]|
|00002200| 29 0a 23 40 33 35 20 48 | 61 6e 64 6c 65 20 63 6f |).#@35 H|andle co|
|00002210| 72 72 65 63 74 20 67 75 | 65 73 73 69 6e 67 20 6f |rrect gu|essing o|
|00002220| 66 20 44 49 47 49 54 2e | 1f 0a 28 64 65 66 61 6c |f DIGIT.|..(defal|
|00002230| 69 61 73 20 27 6d 70 75 | 7a 2d 63 6f 72 72 65 63 |ias 'mpu|z-correc|
|00002240| 74 2d 67 75 65 73 73 20 | 23 5b 28 64 69 67 69 74 |t-guess |#[(digit|
|00002250| 29 20 22 08 09 c2 49 88 | c3 09 21 88 c4 20 ad 82 |) "...I.|..!.. ..|
|00002260| c5 20 87 22 20 5b 6d 70 | 75 7a 2d 66 6f 75 6e 64 |. ." [mp|uz-found|
|00002270| 2d 64 69 67 69 74 73 20 | 64 69 67 69 74 20 74 20 |-digits |digit t |
|00002280| 6d 70 75 7a 2d 70 61 69 | 6e 74 2d 64 69 67 69 74 |mpuz-pai|nt-digit|
|00002290| 20 6d 70 75 7a 2d 63 68 | 65 63 6b 2d 61 6c 6c 2d | mpuz-ch|eck-all-|
|000022a0| 73 6f 6c 76 65 64 20 6d | 70 75 7a 2d 63 6c 6f 73 |solved m|puz-clos|
|000022b0| 65 2d 67 61 6d 65 5d 20 | 33 20 28 23 24 20 2e 20 |e-game] |3 (#$ . |
|000022c0| 38 37 31 31 29 5d 29 0a | 23 40 34 34 20 48 6f 75 |8711)]).|#@44 Hou|
|000022d0| 73 65 63 6c 65 61 6e 69 | 6e 67 20 77 68 65 6e 20 |secleani|ng when |
|000022e0| 70 75 7a 7a 6c 65 20 68 | 61 73 20 62 65 65 6e 20 |puzzle h|as been |
|000022f0| 73 6f 6c 76 65 64 2e 1f | 0a 28 64 65 66 61 6c 69 |solved..|.(defali|
|00002300| 61 73 20 27 6d 70 75 7a | 2d 63 6c 6f 73 65 2d 67 |as 'mpuz|-close-g|
|00002310| 61 6d 65 20 23 5b 6e 69 | 6c 20 22 c0 11 5c 6e 0b |ame #[ni|l "..\n.|
|00002320| 5c 5c 12 0c 54 14 c5 20 | 88 c6 20 1e 07 c7 0e 07 |\\..T.. |.. .....|
|00002330| 21 88 c8 c9 21 88 ca 0e | 07 cb 50 21 ab 84 cc 20 |!...!...|..P!... |
|00002340| aa 83 c7 cd 21 29 87 22 | 20 5b 6e 69 6c 20 6d 70 |....!)."| [nil mp|
|00002350| 75 7a 2d 69 6e 2d 70 72 | 6f 67 72 65 73 73 20 6d |uz-in-pr|ogress m|
|00002360| 70 75 7a 2d 6e 62 2d 63 | 75 6d 75 6c 61 74 65 64 |puz-nb-c|umulated|
|00002370| 2d 65 72 72 6f 72 73 20 | 6d 70 75 7a 2d 6e 62 2d |-errors |mpuz-nb-|
|00002380| 65 72 72 6f 72 73 20 6d | 70 75 7a 2d 6e 62 2d 63 |errors m|puz-nb-c|
|00002390| 6f 6d 70 6c 65 74 65 64 | 2d 67 61 6d 65 73 20 6d |ompleted|-games m|
|000023a0| 70 75 7a 2d 70 61 69 6e | 74 2d 73 74 61 74 69 73 |puz-pain|t-statis|
|000023b0| 74 69 63 73 20 6d 70 75 | 7a 2d 63 6f 6e 67 72 61 |tics mpu|z-congra|
|000023c0| 74 75 6c 61 74 65 20 6d | 65 73 73 61 67 65 20 73 |tulate m|essage s|
|000023d0| 69 74 2d 66 6f 72 20 34 | 20 79 2d 6f 72 2d 6e 2d |it-for 4| y-or-n-|
|000023e0| 70 20 22 20 20 53 74 61 | 72 74 20 61 20 6e 65 77 |p " Sta|rt a new|
|000023f0| 20 67 61 6d 65 20 22 20 | 6d 70 75 7a 2d 73 74 61 | game " |mpuz-sta|
|00002400| 72 74 2d 6e 65 77 2d 67 | 61 6d 65 20 22 47 6f 6f |rt-new-g|ame "Goo|
|00002410| 64 20 42 79 65 20 21 22 | 5d 20 33 20 28 23 24 20 |d Bye !"|] 3 (#$ |
|00002420| 2e 20 38 39 30 39 29 5d | 29 0a 23 40 35 35 20 42 |. 8909)]|).#@55 B|
|00002430| 75 69 6c 64 20 61 20 63 | 6f 6e 67 72 61 74 75 6c |uild a c|ongratul|
|00002440| 61 74 69 6f 6e 20 6d 65 | 73 73 61 67 65 20 77 68 |ation me|ssage wh|
|00002450| 65 6e 20 70 75 7a 7a 6c | 65 20 69 73 20 73 6f 6c |en puzzl|e is sol|
|00002460| 76 65 64 2e 1f 0a 28 64 | 65 66 61 6c 69 61 73 20 |ved...(d|efalias |
|00002470| 27 6d 70 75 7a 2d 63 6f | 6e 67 72 61 74 75 6c 61 |'mpuz-co|ngratula|
|00002480| 74 65 20 23 5b 6e 69 6c | 20 22 c0 c1 5c 6e 89 c3 |te #[nil| "..\n..|
|00002490| 55 ab 83 c4 aa c0 5c 6e | c5 55 ab 83 c6 aa b8 5c |U.....\n|.U.....\|
|000024a0| 6e c7 55 ab 83 c8 aa b0 | 5c 6e c9 55 ab 83 ca aa |n.U.....|\n.U....|
|000024b0| a8 5c 6e cb 55 ab 83 cc | aa a0 5c 6e cd 59 ab 88 |.\n.U...|..\n.Y..|
|000024c0| 5c 6e ce 57 ab 83 cf aa | 93 5c 6e ce 59 ab 88 5c |\n.W....|.\n.Y..\|
|000024d0| 6e d0 57 ab 83 d1 aa 86 | 5c 6e d0 59 ad 81 d2 23 |n.W.....|\n.Y...#|
|000024e0| 87 22 20 5b 66 6f 72 6d | 61 74 20 22 50 75 7a 7a |." [form|at "Puzz|
|000024f0| 6c 65 20 73 6f 6c 76 65 | 64 20 77 69 74 68 20 25 |le solve|d with %|
|00002500| 64 20 65 72 72 6f 72 73 | 2e 20 25 73 22 20 6d 70 |d errors|. %s" mp|
|00002510| 75 7a 2d 6e 62 2d 65 72 | 72 6f 72 73 20 30 20 22 |uz-nb-er|rors 0 "|
|00002520| 54 68 61 74 27 73 20 70 | 65 72 66 65 63 74 20 21 |That's p|erfect !|
|00002530| 22 20 31 20 22 54 68 61 | 74 27 73 20 76 65 72 79 |" 1 "Tha|t's very|
|00002540| 20 67 6f 6f 64 20 21 22 | 20 32 20 22 54 68 61 74 | good !"| 2 "That|
|00002550| 27 73 20 67 6f 6f 64 2e | 22 20 33 20 22 54 68 61 |'s good.|" 3 "Tha|
|00002560| 74 27 73 20 6e 6f 74 20 | 62 61 64 2e 22 20 34 20 |t's not |bad." 4 |
|00002570| 22 54 68 61 74 27 73 20 | 6e 6f 74 20 74 6f 6f 20 |"That's |not too |
|00002580| 62 61 64 2e 2e 2e 22 20 | 35 20 31 30 20 22 54 68 |bad..." |5 10 "Th|
|00002590| 61 74 27 73 20 62 61 64 | 20 21 22 20 31 35 20 22 |at's bad| !" 15 "|
|000025a0| 54 68 61 74 27 73 20 61 | 77 66 75 6c 2e 22 20 22 |That's a|wful." "|
|000025b0| 54 68 61 74 27 73 20 6e | 6f 74 20 73 65 72 69 6f |That's n|ot serio|
|000025c0| 75 73 2e 22 5d 20 35 20 | 28 23 24 20 2e 20 39 32 |us."] 5 |(#$ . 92|
|000025d0| 36 33 29 5d 29 0a 23 40 | 34 32 20 44 69 73 70 6c |63)]).#@|42 Displ|
|000025e0| 61 79 20 73 6f 6c 75 74 | 69 6f 6e 20 66 6f 72 20 |ay solut|ion for |
|000025f0| 64 65 62 75 67 67 69 6e | 67 20 70 75 72 70 6f 73 |debuggin|g purpos|
|00002600| 65 73 2e 1f 0a 28 64 65 | 66 61 6c 69 61 73 20 27 |es...(de|falias '|
|00002610| 6d 70 75 7a 2d 73 68 6f | 77 2d 73 6f 6c 75 74 69 |mpuz-sho|w-soluti|
|00002620| 6f 6e 20 23 5b 6e 69 6c | 20 22 c0 20 88 c1 89 1a |on #[nil| ". ....|
|00002630| 1b c4 13 c5 0b 54 89 13 | 56 ab 8c 0e 06 0b 48 ac |.....T..|V.....H.|
|00002640| 72 0b 5c 6e 42 12 aa 6c | c7 c8 5c 6e 5c 22 2a 87 |r.\nB..l|..\n\"*.|
|00002650| 22 20 5b 6d 70 75 7a 2d | 73 77 69 74 63 68 2d 74 |" [mpuz-|switch-t|
|00002660| 6f 2d 77 69 6e 64 6f 77 | 20 6e 69 6c 20 6c 69 73 |o-window| nil lis|
|00002670| 74 20 64 69 67 69 74 20 | 2d 31 20 31 30 20 6d 70 |t digit |-1 10 mp|
|00002680| 75 7a 2d 66 6f 75 6e 64 | 2d 64 69 67 69 74 73 20 |uz-found|-digits |
|00002690| 6d 61 70 63 61 72 20 6d | 70 75 7a 2d 63 6f 72 72 |mapcar m|puz-corr|
|000026a0| 65 63 74 2d 67 75 65 73 | 73 5d 20 33 20 28 23 24 |ect-gues|s] 3 (#$|
|000026b0| 20 2e 20 39 36 39 31 29 | 20 6e 69 6c 5d 29 0a | . 9691)| nil]). |
+--------+-------------------------+-------------------------+--------+--------+